const addressApi = require('../../utils/addressApi.js');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    addressList: []
  },
toAdd(){
  // 跳转到新增地址页面
  wx.navigateTo({
    url: '/pages/add/add',
  })
},

  // 跳转编辑收货地址页面
  toEdit(e) {
    // 获取当前点击地址的id
    const { id } = e.currentTarget.dataset;
    // 跳转编辑页面（使用反引号解析模板字符串）
    wx.navigateTo({
      url: `/pages/add/add?id=${id}`, 
      //找到需要编辑的收货地址的id,携带参数
    })
  },
delAddress(e) {
  const { id } = e.currentTarget.dataset;
  wx.showModal({
    title: '提示',
    content: '您确认删除该收货地址吗？',
    success: async (res) => {
      if (res.confirm) {
        try {
          await addressApi.deleteAddress(id);
          // 删除成功后重新获取地址列表
          this.loadAddressList();
          wx.showToast({
            title: '删除成功',
            icon: 'none'
          });
        } catch (error) {
          console.error('删除地址失败:', error);
        }
      }
    }
  });
},

  /**
   * 生命周期函数--监听页面加载
   */
  // 页面第一次加载触发，只加载一次
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.loadAddressList();
  },

  /**
   * 加载地址列表
   */
  async loadAddressList() {
    try {
      wx.showLoading({
        title: '加载中...',
      });
      
      // 获取用户ID，这里假设从全局数据中获取，实际项目中可能需要从登录状态中获取
      const userId = wx.getStorageSync('userId') || 1;
      
      // 调用API获取地址列表
      const addressList = await addressApi.getAddressByUserId(userId);
      
      // 转换数据格式，适配前端显示
      const formattedList = addressList.map(item => ({
        id: item.id,
        name: item.receiverName,
        phone: item.receiverPhone,
        address: `${item.provinceName}${item.cityName}${item.districtName}${item.detail}`,
        isDefault: item.defaultAddress,
        // 保存原始数据，用于编辑
        rawData: item
      }));
      
      this.setData({
        addressList: formattedList
      });
      
      wx.hideLoading();
    } catch (error) {
      wx.hideLoading();
      console.error('获取地址列表失败:', error);
      wx.showToast({
        title: '获取地址列表失败',
        icon: 'none'
      });
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})